sync#2
Open
nanocoh wants to merge 2035 commits into
Open
Conversation
Signed-off-by: Naveen Venkat <archgen.guest@nyayanidhi.in>
The tst Fixture unconditionally created a dbSta instance, so every test that used it linked OpenSTA + dbSta even when it only manipulated an odb database (e.g. the odb helper-based tests). OpenSTA/dbSta debug symbols dominate those binaries (~160 MB each). Split Fixture into a base tst::DbFixture (tst/db_fixture.h, odb-only: db manipulation, LEF tech loading, file lookup) and a derived tst::Fixture (tst/fixture.h) that adds the dbSta/OpenSTA instance, readLiberty, and the LEF library loaders that notify STA. The base lives in a new tst_base library (//src/tst:db_fixture in Bazel) that does not link STA. odb DB-only tests and SimpleDbFixture now derive from DbFixture and link tst_base; STA consumers (PDK fixtures, IntegratedFixture, rsz/dbSta/est tests) are unchanged. Mirrored in Bazel. Signed-off-by: Matt Liberty <mliberty@precisioninno.com>
…d-fields rcx: rm ununsed fields in dbCreateNetUtil
Signed-off-by: Naveen Venkat <archgen.guest@nyayanidhi.in>
LEF power and ground pins may legally use INPUT direction. Exclude supply MTerms when identifying a buffer signal input and output so those cells remain usable for repair operations. Signed-off-by: Naveen Venkat <archgen.guest@nyayanidhi.in>
NesterovBase::getDensityGradient re-fetched three loop-invariant values on every inner bin iteration: getBinCntX() (two non-inlined .cpp calls), bg_.getBinsConst(), and gCell->getDensityScale(). Hoist them to locals before the loop and index a raw const Bin* base pointer. Arithmetic-neutral: identical loop nesting, operands, and accumulation order, so placement output is bit-identical. Verified the three values are not mutated inside the loop (binCntX_ member, bins_ not realloced, densityScale_ on the const gCell param). medium03 global_placement (DEF read excluded), 3 runs each on a shared 36-core host, -j8 Release: before median 199910 ms, after median 185648 ms (~7.1%, within run noise). QoR bit-identical: iter 486, overflow 0.0994, HPWL 1.162648e+06 unchanged. gpl ctest suite 65/65 green (log-compare enforces identical output). Signed-off-by: Saurav Singh <saurav.singh@fermions.co>
Signed-off-by: Augusto Berndt <augusto.berndt@precisioninno.com>
Debug info dominates the size of these binaries (template-heavy C++; TestAccessPoint was ~97% DWARF). Enable -gz=zlib for GNU/Clang in the Debug and RelWithDebInfo configs, at both compile and link, to compress the .debug_* sections. This is transparent to gdb/lldb/readelf/addr2line and a no-op for builds without -g (e.g. Release). TestAccessPoint drops 330 MB -> 89 MB (-73%). Signed-off-by: Matt Liberty <mliberty@precisioninno.com>
The default bazel build is -c opt with no -g, so it carries no debug info. The asan and profile configs add -g (and keep symbols via --strip=never), so their binaries carry DWARF that benefits from compression, mirroring the CMake -gz change. Add -gz=zlib (compile + link) to the asan and profile configs. It is transparent to gdb/perf/addr2line. Signed-off-by: Matt Liberty <mliberty@precisioninno.com>
The tst_base fixture library links GTest::gtest, but that imported target only exists when find_package(GTest) runs, which is guarded by ENABLE_TESTS. add_subdirectory(tst) was unconditional, so a -no-tests build failed at generate time with 'Target tst_base links to GTest::gtest but the target was not found'. Guard add_subdirectory(tst) with ENABLE_TESTS. This is safe because every consumer of tst/tst_base/tst_integrated_fixture lives in a test/cpp directory that is itself gated by ENABLE_TESTS. Signed-off-by: Matt Liberty <mliberty@precisioninno.com>
…minimal-deps Trim odb test binary bloat: minimal deps, fixture split, debug compression
GlobalRouter::removeNet only erased the net from dirty_nets_ in the FastRoute (non-CUGR) branch. When use_cugr_ is true, a net destroyed during incremental routing stayed in dirty_nets_, so updateDirtyRoutes later passed the dangling dbNet to CUGR::updateNet, which dereferenced it via Design::updateNet (db_net->getSigType()). In release builds (NDEBUG) this use-after-free is silent, so grt.incremental_deleted_net.tcl passed. With assertions enabled (coverage / RELEASEWITHASSERTS builds) the stale sig type tripped dbSigType::isSupply()'s assert(false) and aborted. Move the dirty_nets_.erase to run for both routers. Signed-off-by: Matt Liberty <mliberty@precisioninno.com>
…dirty-net-destroy grt: erase destroyed net from dirty set in CUGR path
Signed-off-by: Matt Liberty <mliberty@precisioninno.com>
SteinerTreeBuilder stored a dbDatabase* that was never used. Remove the constructor parameter and the db_ member, and update the callers (OpenRoad::init and the gpl mbff unit test) to match. Signed-off-by: Matt Liberty <mliberty@precisioninno.com>
The dependabot bump to v3.1.0 (30efff6) regressed contributor detection. v3 OR-combines isFirstIssue and isFirstPullRequest on every event, and the PR check dropped author filtering. As a result, any contributor who has opened PRs but no plain issue in the repo is greeted as a first-time PR author (upstream actions/first-interaction#369). v1.3.0 branches on event type and matches PRs by author, so it does not misfire. Pin back to v1.3.0 and restore its kebab-case input names. Signed-off-by: Matt Liberty <mliberty@precisioninno.com>
…unused-db-param stt: drop unused dbDatabase* from SteinerTreeBuilder
…bCallBack-network_ rsz: rm unused OdbCallBack::network_
…rst-interaction-v1 ci: revert first-interaction to v1.3.0 (fix false first-PR greetings)
gpl: hoist loop-invariant accessors in getDensityGradient (bit-identical)
…ings Enable the external_include_paths toolchain feature so include paths into external/ (bzlmod/BCR deps) are passed as -isystem instead of -I. Clang suppresses diagnostics from system headers, so this silences warnings from ALL third-party headers pulled into our TUs via template instantiation (boost, Eigen, googletest, ...) at the source -- no per-warning, per-dep -Wno list to maintain. The existing '.*external/.*@-w' per_file_copt only covers compiling external *source* files, not their headers included by ours. The feature is global (target and exec config) and also demotes a from-source dep's own -iquote entries to -isystem. Two deps need adjusting so their own quoted includes keep precedence over glibc/system headers: - git (built as an exec tool for the lint tests): builtin/get-tar-commit-id.c includes git's own tar.h (struct ustar_header, TYPEFLAG_GLOBAL_HEADER), which must shadow glibc's <tar.h>. Patch GIT_COPTS to re-add the repo root as -iquote. Same class of fix as the existing bison/sed/gawk/m4 overrides. - qt-bazel: external_include_paths moves Qt's include dirs into compilation_context.external_includes, which the moc rule did not gather. Bump to 541ebf6d, which teaches moc to also collect external_includes. A full 'bazel build //...' passes; no other from-source dep (abc, yosys, or-tools, ...) needed changes. Signed-off-by: Matt Liberty <mliberty@precisioninno.com>
Signed-off-by: Matt Liberty <mliberty@precisioninno.com>
…IpChecker-sta_ dbsta: rm unused IpChecker::sta_
…ernal-include-paths bazel: pass external headers as -isystem to silence third-party warnings
This test is listed in src/dpl/test/CMakeLists.txt but was missing from the Bazel BUILD file, so it only ran under CMake. Add it to COMPULSORY_TESTS to restore CMake/Bazel parity. Signed-off-by: Matt Liberty <mliberty@precisioninno.com>
…-multi-height-power-align dpl: register multi_height_power_align regression test in Bazel
…ectangular-regions Gpl: add support for non-rectangular regions
…d Abseil
Two fixes for installer breakage first reported after the Yosys v0.67 bump:
1. Yosys v0.67 dropped its Makefile in favor of CMake, so _install_yosys
failed with "make: *** No targets specified and no makefile found".
Detect a missing Makefile and build with CMake instead, mirroring the
flags ORFS uses (Release + install prefix). The make path is kept for
older versions.
2. Prebuilt or-tools links its own bundled (shared) Abseil. _install_abseil
preferred an Abseil copy in the install prefix over the or-tools bundle,
so machines with a leftover /usr/local Abseil from earlier installer runs
built OpenROAD against two Abseil copies and crashed at startup with:
ERROR: Inconsistency between flag object and registration for flag
'flagfile', likely due to duplicate flags or an ODR violation.
Prefer the or-tools bundled Abseil when it exists, purge stale Abseil
artifacts from the prefix before installing a new copy, and warn when a
stale prefix copy shadows the or-tools bundle or when the pinned
ABSL_VERSION diverges from the bundled one.
Signed-off-by: Joao Luis Sombrio <sombrio@sombrasoft.dev>
Resolve upf_aes .ok/.defok golden conflicts by regenerating against the merged binary (buffering-boost rsz + master DPL/GPL negotiation changes). Signed-off-by: Minju Kim <mkim@precisioninno.com>
…sue1737-hold-buffer-count-fix rsz: fix hold-buffer count reset on repair_timing -hold rollback
Review feedback: operator at end of line is less fragile than backslash continuation with a multi-line conditional. Signed-off-by: Joao Luis Sombrio <sombrio@sombrasoft.dev>
…to rsz-buffering-boost rsz sources auto-merged. Regenerate aes_sky130hd / jpeg_sky130hd metric + limit goldens against the merged binary (buffering-boost + #10835): e.g. aes RSZ::hold_buffer_count settles at 330 (neither the pre-fix 19 nor master 343). Signed-off-by: Minju Kim <mkim@precisioninno.com>
rsz: Avoid SIGILL in net tree stitching if subtree can't build
…z-buffering-boost rsz: Merge rsz-buffering-boost for Rebuffer QoR gain
Signed-off-by: Simon Dorrer <simon.dorrer@jku.at> Signed-off-by: Matt Liberty <mliberty@precisioninno.com>
Address review: the double negative ("disable" in the command name plus -disable/-enable flags) was confusing. Rename to `set_routing_auto_taper` and require exactly one of -enable/-disable (no default), so it reads as a direct on/off switch. Behavior and the odb flag (`disable_auto_taper`) are unchanged.
Signed-off-by: Simon Dorrer <simon.dorrer@jku.at>
Signed-off-by: Matt Liberty <mliberty@precisioninno.com>
…essed` Address review from @mole99: the 'NDR net whose auto-taper is suppressed' predicate was duplicated inline in three places (FlexPA_unique once, FlexPA_acc_point twice). Extract it into `frNet::isAutoTaperSuppressed(bool auto_taper_enabled)` and reuse it. Behavior-preserving. Signed-off-by: Simon Dorrer <simon.dorrer@jku.at> Signed-off-by: Matt Liberty <mliberty@precisioninno.com>
Signed-off-by: Simon Dorrer <simon.dorrer@jku.at> Signed-off-by: Matt Liberty <mliberty@precisioninno.com>
…gument checks Signed-off-by: Simon Dorrer <simon.dorrer@jku.at> Signed-off-by: Matt Liberty <mliberty@precisioninno.com>
…ble` flag Signed-off-by: Simon Dorrer <simon.dorrer@jku.at> Signed-off-by: Matt Liberty <mliberty@precisioninno.com>
Signed-off-by: Simon Dorrer <simon.dorrer@jku.at> Signed-off-by: Matt Liberty <mliberty@precisioninno.com>
set_routing_auto_taper was defined in OpenRoad.tcl but documented in src/odb/README.md, so odb_man_tcl_check saw README count (22) != help count (21). Move the sta::define_cmd_args/proc into odb.tcl and renumber its errors ORD 1016-1018 -> ODB 1023-1025 to match the odb namespace. Also refresh the stale goldens: bump odb_readme_msgs_check.ok to 24 for the added README section, and regenerate ndr_no_auto_taper.defok after the QoR shift from rebasing onto master. Signed-off-by: Matt Liberty <mliberty@precisioninno.com>
Signed-off-by: Matt Liberty <mliberty@precisioninno.com>
Address review: isAutoTaperDisabled and isAutoTaperSuppressed were too similar and negative. The frNet per-net flag is now positive (auto_taper_enabled_, default true) with setAutoTaperEnabled(), and the effective query is autoTaperEnabled(bool global_enabled), matching the existing drNet::autoTaperEnabled (which now delegates to it). Call sites state the NDR condition explicitly. Behavior unchanged. Signed-off-by: Simon Dorrer <simon.dorrer@jku.at> Signed-off-by: Matt Liberty <mliberty@precisioninno.com>
Signed-off-by: Matt Liberty <mliberty@precisioninno.com>
gpl: update large tests
Signed-off-by: Matt Liberty <mliberty@precisioninno.com>
drt: allow NDR auto-taper to be disabled per net
The FastRouteRenderer.h is reachable via src/fastroute/include/FastRouteRenderer.h, but no include path was given, so it worked by accident. Make that explicit. Signed-off-by: Henner Zeller <h.zeller@acm.org>
…dency-installer-yosys-absl etc: fix DependencyInstaller for CMake-only Yosys and or-tools bundled Abseil
Relevant release notes: https://github.com/hzeller/bant/releases/tag/v0.3.1 Useful new feature: select a column of the tabular outputs right with bant without extra use of awk. Signed-off-by: Henner Zeller <h.zeller@acm.org>
FastRouteRenderer.h is declared by //src/grt:ui, use correct prefix.
Signed-off-by: dsengupta0628 <dsengupta@precisioninno.com>
Signed-off-by: dsengupta0628 <dsengupta@precisioninno.com>
…_sta_july10 bump sta ptr to sta master
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
[Describe your changes here]
Type of Change
Impact
[How does this change the tool's behavior?]
Verification
./etc/Build.sh).Related Issues
[Link issues here]